home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / nihcl-30.lha / nihcl-3.0 / ex / ex7-2.c < prev    next >
C/C++ Source or Header  |  1990-05-15  |  1KB  |  46 lines

  1. // ex7-2.c -- Improved geometry class hierarchy
  2. //            using NIH class library
  3.  
  4. // $Header: /afs/alw.nih.gov/unix/sun4_40c/usr/local/src/nihcl-3.0/share/ex/RCS/ex7-2.c,v 3.0 90/05/15 22:45:50 kgorlen Rel $
  5.  
  6. #include <fstream.h>
  7. #include <osfcn.h>
  8. #include "Point.h"
  9. #include "Line.h"
  10. #include "Circle.h"
  11. #include "Picture.h"
  12. #include "OIOnih.h"
  13.  
  14. main()
  15. {
  16.     Line l(Point(1,2),Point(3,4));
  17.     Circle c(Point(5,6),1);
  18.     Picture subPic;
  19.     subPic.add(l);
  20.     subPic.add(c);
  21.  
  22.     Picture bigPic;
  23.     bigPic.add(*(Shape*)subPic.shallowCopy());
  24.     bigPic.add(*(Shape*)subPic.deepCopy());
  25.     bigPic.add(l);
  26.     cout << "\n* Original bigPic:\n";
  27.     bigPic.draw();
  28.  
  29.     subPic.move(Point(10,10));
  30.     cout << "\n* After moving subPic:\n";
  31.     bigPic.draw();
  32.  
  33.     l.move(Point(10,10));
  34.     c.move(Point(10,10));
  35.     cout << "\n* After moving l and c:\n";
  36.     bigPic.draw();
  37.  
  38.     ofstream out("picturefile",ios::out,0664);
  39.                       // UNIX protection mode 0664
  40.     if (out.fail()) {
  41.         cerr << "Failed to open picturefile\n";
  42.         exit(1);
  43.     }
  44.     bigPic.storeOn(OIOnihout(out));
  45. }
  46.